import request from "./axios";

export const UploadFileAPI = {
  // 单文件上传
  upload: (file) => {
    const formData = new FormData();
    // 追加文件，第一个参数要与后端接口的接收参数名一致
    formData.append("file", file);

    return request.post("/common/upload", formData, {
      // 对于FormData，浏览器会自动设置正确的Content-Type，包括boundary
      headers: {
        "Content-Type": "multipart/form-data",
      },
    });
  },

  // 多文件上传
  batchUpload: (files) => {
    const formData = new FormData();

    // 如果是单个文件，转为数组处理
    const fileList = Array.isArray(files) ? files : [files];

    // 循环添加多个文件，注意参数名可能需要后端支持数组形式，如"files[]"
    fileList.forEach((file, index) => {
      // 这里使用"files"作为参数名，具体要与后端接口保持一致
      // 有些后端可能需要"files[]"这种格式来识别数组
      formData.append("files", file);
      // 可选：添加文件名信息
      // formData.append(`fileNames[${index}]`, file.name);
    });

    return request.post("/common/batch-upload", formData, {
      // 对于多文件上传，同样需要multipart/form-data类型
      headers: {
        "Content-Type": "multipart/form-data",
      },
    });
  },
};
